#ifndef CLIENTCFG_H_
#define CLIENTCFG_H_
#include <string>
#include <iostream>
#include <stdlib.h>
#include <fstream>
#include "../Utils/index.h"


class ClientCfg {
public:
	/* Constructor:
	 * Recibe el path donde esta ubicado el archivo de configuracion
	 */	
	ClientCfg(std::string& path_cfg);
	
	/* Devuelve el nombre del campo perteneciente a la Ip del Servidor*/	
	const char* getNameFieldIp();
	
	/* Devuelve el nombre del campo perteneciente a la direccion del repositorio*/	
	const char* getNameFieldStoragePath();
	
	/* Devuelve el nombre del campo perteneciente al puerto*/	
	const char* getNameFieldPort();
	
	/* Devuelve el nombre del campo perteneciente al intervalo de Polling*/	
	const char* getNameFieldPolling();

	/* Devuelve el nombre del campo perteneciente al path del archivo de indice*/
	const char* getNameFieldIndexPath();

	/* Devuelve el nombre del campo perteneciente al path del archivo de login*/
	const char* getNameFieldLoginPath();
	
	/* Levanta los campos del archivo de configuracion y setea sus atributos*/	
	void Initialize();
	
	/* Devuelve el valor de la Ip del Servidor*/
	std::string getIp_server();

	/* Devuelve el valor del repositorio*/	
	std::string getStorage_path();
	
	/* Devuelve el valor del puerto*/
	int getPort();

	/* Devuelve el valor del path del archivo de indice*/
	std::string getIndice_path();

	/* Devuelve el valor del path del archivo de login*/
	std::string getLogin_path();

	/* Devuelve el valor del intervalo de Polling*/
	int getPolling();
	
	/* Destructor*/
	virtual ~ClientCfg();


private:
	std::string path_cfg;
	std::string ip_server;
	std::string storage_path;
	std::string indice_path;
	std::string login_path;
	int port;
	int polling;

};

#endif /* CLIENTCFG_H_ */
